<?php
/**
 * 系统工具类
 * @Author yulipu
 */
if(!defined('THINK_PATH')) exit;

class SysUtil {

	public function __construct() {}
	
	/**
	 * 加载配置文件
	 * @param $configFileName 配置文件名字
	 * @param $path 配置文件所在路径
	 * @param $reload 是否强制重新加载
	 * return 一个配置文件 数组
	 */
	public static function loadConfig($configFileName, $path, $reload = false) {
		static $config_cache = array();
		$path = rtrim($path, '/');  // d:/www/web/Public
		$truefile = $path . '/' . $configFileName;
				
		$key = md5($truefile);
		if(isset($config_cache[$key])) {
			if(true == $reload) {
				return include $truefile;
			} else {
				return $config_cache[$key];
			}
		}
		
		if(is_file($truefile)) {
			//clearstatcache();
			//if(is_readable($truefile)) {
				return $config_cache[$key] = include $truefile;  //把文件放到缓存中
			//} else {
			//	die('文件不可读');
			//}
			
		} 
			
		die('配置文件' . $configFileName . '不存在');
	}
	
	/**
	 * 加载配置文件中的一项 默认加载Public中的文件
	 * @param $key 要获得的项的键值 key=>value
	 * @param $configFile 配置文件
	 * return 配置文件中的一项
	 */
	public static function loadOneConfigByKey($key, $configFile) {
		if(is_file($configFile)) {
			$tmpArr = include $configFile;
			if(isset($tmpArr[$key])) {
				return $tmpArr[$key];
			}
		} 
		
		return '';
	}
	
	// 遍历目录下的文件 一级目录文件
	public static function getOneLayerDirFileList($dir) {
		$arr = array(); 
		$truefile = '';
		if(is_dir($dir)) {
			$h = opendir($dir);
			while(($file = readdir($h)) !== false) {  //readdir()返回打开目录句柄中的一个条目
				$truefile = $dir . DIRECTORY_SEPARATOR . $file;
				if($file == '.' || $file == '..') {
					continue;
				} else if(is_file($truefile)) {  
					$arr[$file] = $truefile;
				} else {    

				}
			}
			closedir($h);
		}
		
		return $arr;
	}
}
